package com.gfxy.modules.common.mapper;

import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gfxy.modules.common.entity.TotalScore;
import com.gfxy.modules.common.vo.SummaryOrgTotalScoreVo;
import com.gfxy.modules.common.vo.SummaryTotalScoreVo;
import com.gfxy.modules.common.vo.TotalScoreOrg;
import com.gfxy.modules.common.vo.TotalScoreVo;
import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;

/**
 * @Description: gfxy_t_total_score
 * @Author: jeecg-boot
 * @Date:   2021-11-17
 * @Version: V1.0
 */
public interface TotalScoreMapper extends BaseMapper<TotalScore> {

    /**
     * 查询教师总成绩及总排名
     * @param date
     * @param userName
     * @param projectId
     * @return
     */
    List<Map> getClassificationInfoAndScoreByDateUserProjectId(@Param("date") String date, @Param("userName") String userName, @Param("projectId") String projectId);

    /**
     * 根据考核项目类型和教师类型获取全校和所在部门成绩及排名
     * @param date
     * @param teacherId
     * @return
     */
    List<Map> getScoreAndRankedByProjectId(@Param("date") String date,@Param("teacherId") String teacherId, @Param("projectId") String projectId);

    List<Map> getScoreAndRankedByProjectIdAndTeacherType(@Param("date") String date,@Param("teacherId") String teacherId,@Param("projectId") String projectId, @Param("teacherType") String teacherType);

    List<Map> getClassificationScoreAndRankedByProjectId(@Param("date") String date,@Param("teacherId") String teacherId, @Param("projectId") String projectId);

    List<Map> getClassificationScoreAndRankedByProjectIdAndTeacherType(@Param("date") String date,@Param("teacherId") String teacherId,@Param("projectId") String projectId, @Param("teacherType") String teacherType);



    IPage<TotalScoreVo> getEducationTotalScoreByDateAndOrgCode(IPage page,@Param("date") String date,@Param("orgCode") String orgCode);

    List<SummaryOrgTotalScoreVo> getOrgAllYearSummaryTotalScoreByDate( @Param("date")String date);

    IPage<SummaryTotalScoreVo> getAllYearSummaryTotalScoreByDateAndOrgCode(IPage<SummaryTotalScoreVo> page,  @Param("date")String date,  @Param("orgCode")String orgCode);

    List<SummaryTotalScoreVo> getAllSummaryTotalScoreByDateAndOrgCodeForList( @Param("date")String date, @Param("orgCode")String orgCode);
//    List<TotalScoreOrg> getOrgTotalScoreByDataAndType( @Param("date") String date, @Param("scoreType") Integer scoreType);
//
//
//    IPage<TotalScoreVo> getTotalScoreByDataAndOrgCodeAndType( IPage page, @Param("date") String date, @Param("orgCode") String orgCode, @Param("scoreType") Integer scoreType);
//
//    IPage<TotalScoreVo> getTotalScoreForTeachingTeacherByDataAndOrgCodeAndType(IPage page, @Param("date") String date, @Param("orgCode") String orgCode, @Param("scoreType") Integer scoreType);
//
//    List<SummaryOrgTotalScoreVo> getOrgAllSummaryTotalScoreByDate(@Param("date") String date);
//
//    IPage<SummaryTotalScoreVo> getAllSummaryTotalScoreByDateAndOrgCode(IPage<SummaryTotalScoreVo> page, @Param("date") String date, @Param("orgCode") String orgCode);
//
//    List<SummaryTotalScoreVo> getAllSummaryTotalScoreByDateAndOrgCodeForList( @Param("date") String date, @Param("orgCode") String orgCode);
//
//    List<SummaryTotalScoreVo> getAllSummaryTotalScoreByDateForList(@Param("date") String date);
}
